package com.newjiabo.system.mapper;

import java.util.List;

import com.newjiabo.system.domain.SysRegion;
import com.newjiabo.system.domain.vo.RegionQuery;
import org.apache.ibatis.annotations.Param;

/**
 * 行政地区Mapper接口
 *
 * @author CaoMengHui
 * @date 2023-09-18
 */
public interface SysRegionMapper {
    /**
     * 查询行政地区
     *
     * @param id 行政地区主键
     * @return 行政地区
     */
    SysRegion selectSysRegionById(String id);

    /**
     * 查询行政地区列表
     *
     * @param sysRegion 行政地区
     * @return 行政地区集合
     */
    List<SysRegion> selectSysRegionList(SysRegion sysRegion);

    /**
     * 新增行政地区
     *
     * @param sysRegion 行政地区
     * @return 结果
     */
    int insertSysRegion(SysRegion sysRegion);

    /**
     * 修改行政地区
     *
     * @param sysRegion 行政地区
     * @return 结果
     */
    int updateSysRegion(SysRegion sysRegion);

    /**
     * 删除行政地区
     *
     * @param id 行政地区主键
     * @return 结果
     */
    int deleteSysRegionById(Long id);

    /**
     * 批量删除行政地区
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteSysRegionByIds(String[] ids);

    /**
     * 通过条件查询信息
     *
     * @param query
     * @return
     * @author CaoMengHui.
     * @date 2023/9/18 15:08
     */
    List<SysRegion> selectByQuery(@Param(value = "query") RegionQuery query);

    /**
     * 查询
     *
     * @author CaoMengHui.
     * @date 2023/9/18 15:20
     * @param cityCode
     * @param townName
     * @return
     */
    List<SysRegion> getOneByCityCodeAndName(@Param(value = "cityCode") String cityCode,@Param(value = "townName") String townName);

    /**
     *  in leven
     *
     * @author CaoMengHui.
     * @date 2023/9/18 15:36
     * @param values
     * @return
     */
    List<SysRegion> getInLeven(String[] values);
}
